use std::path::PathBuf;
use std::sync::OnceLock;

// 全局变量存储DLL所在目录路径
pub static DLL_DIRECTORY: OnceLock<PathBuf> = OnceLock::new();

// 全局变量存储DLL完整路径
pub static DLL_PATH: OnceLock<String> = OnceLock::new();

// 初始化DLL路径信息
pub fn init_dll_path(dll_path_str: &str) {
    // 设置DLL完整路径
    let _ = DLL_PATH.set(dll_path_str.to_string());

    // 设置DLL所在目录
    let mut path = PathBuf::from(dll_path_str);
    path.pop(); // 移除文件名，只保留目录
    let _ = DLL_DIRECTORY.set(path);
}

// 获取DLL所在目录
pub fn get_dll_directory() -> Option<&'static PathBuf> {
    DLL_DIRECTORY.get()
}

// 获取DLL完整路径
#[allow(dead_code)]
pub fn get_dll_path() -> Option<&'static String> {
    DLL_PATH.get()
}
